The problem of writing error-free computer programs has plagued programmers since the very beginning. Sophisticated schemes for automatically discovering program errors and bugs of all kinds, including lexical, syntactic, semantic and logical, have been developed. However, these schemes have generally been directed to enforcing adherence to concrete programming standards inherent in the definition of the programming language itself and not to more extrinsic quality-related concerns, such as language modularity, portability, testing costs and communications between different program modules in networked and distributed environments.
Web service is a term that has emerged to describe a software module deployed on the Web and intended for use as a component of one or more applications distributed across the Internet. A Web service inherently exists as part of a larger system. It is the servicing of these other components that gives Web services their name. Thus, a primary consideration in the design of a Web service is the protocols that will be used to communicate with other components of the system.
The first relevant protocol is the transport layer, which is typically HTTP or HTTPS. Other transport protocols, such as Java's Remote Method Invocation (RMI), CORBA's Internet Inter-Orb Protocol (IIPO), or DCOM's Distributed Computing Environment Remote Procedure Call (DCE RPC) can enable distributed applications, but such applications are not considered Web services because they are not deployed on the Web.
A second relevant protocol is the packaging layer. This layer defines how content is wrapped up into messages that are sent over the transport layer. The emerging standard in this area is called SOAP. SOAP, originally stood for “Simple Object Access Protocol”, but it now refers to a more generalized protocol for any service oriented protocol. SOAP is currently an XML-based messaging framework for exchanging structured and typed information between peers in a decentralized, distributed environment. Extensible Markup Language (XML) is a meta-markup language for describing data objects. The specifications defining both SOAP and XML are produced by the World Wide Web Consortium (W3C). SOAP is typically implemented in XML and relies on XML namespaces and XML schemas to define document types that describe messages. SOAP describes a simple messaging (request/response) mechanism (for example, Remote Procedure Calls (RPC)). That is, a SOAP client sends a request (e.g., a RPC request) to a SOAP server. The SOAP server then replies by sending a response (e.g., a RPC response) to the SOAP client.
Web Services Description Language (WSDL), also typically implemented in XML, is used to describe the types of requests accepted by a particular Web service. It is used to communicate meta-information about the Web service and, as such, is not strictly necessary for invoking the Web service itself.
Since XML is a meta-markup language, it provides mechanisms for defining languages that are implemented in XML. There are two basic mechanisms for defining these languages: Document Type Definition (DTD) and XML Schema. DTDs provide mechanisms for expressing which elements are allowed and what the composition of each element can be. Allowable attributes can be defined per element type, and allowable attribute values can be defined per attribute. However, DTDs have some shortcomings. They do not provide the capability to extend types, they do not have provisions for namespaces, and competency in DTD writing requires learning a syntax that seems obscure to those outside the SGML world. To address these issues, XML schemas were introduced. Like DTDs, schemas define a set of authorized elements, attributes, and attribute values. However, schemas are namespace-aware and are more type-oriented than DTDs. Also, schemas themselves are an XML-based language, so learning schemas does not require learning a new syntax.
The development of high quality web services requires testing at multiple levels. This is a difficult and time consuming task, both to exercise the web services and to confirm that the messages conform to requirements regarding features such as well-formedness, validity, fault handling, and application-specific business logic. Therefore, there is a need to a system and method to automate testing of SOAP-based Web services.